package cn.iocoder.yudao.module.fengdong.smartelderly.utils;

import cn.hutool.core.util.IdUtil;
import cn.iocoder.yudao.module.infra.service.file.FileService;
import cn.iocoder.yudao.module.system.api.dict.DictDataApi;
import cn.iocoder.yudao.module.system.api.dict.dto.DictDataRespDTO;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * @author SUN
 * @date 2023/11/18
 */
@Service
public class QRCodeGenerator {

    @Resource
    private FileService fileService;
    @Resource
    private DictDataApi dictDataApi;


    public String get(Long type, Long id, String text) {

        DictDataRespDTO fmQrcodeUrlDictData = dictDataApi.parseDictData("fm_qrcode", "档案二维码-URL");

        if (fmQrcodeUrlDictData == null) {
            throw new RuntimeException("FM QRCODE 档案二维码-URL 字典未配置");
        }

        String fmQrcodeUrl = String.format(fmQrcodeUrlDictData.getValue() + "?type=%s&id=%s", type, id);

        // 承建单位简称
        DictDataRespDTO dict = dictDataApi.parseDictData("fm_qrcode", "承建单位简称");

        // 生成二维码
        byte[] generateQRCode = QRCodeGeneratorUtil.generateQRCode(fmQrcodeUrl, text,dict.getValue());

        // 上传二维码
        return fileService.createFile(null, "fmQrcode/" + IdUtil.simpleUUID() + ".jpg", generateQRCode);
    }


}
